package ig.metrica.modelos;

import ig.metrica.modelos.dao.ModeloorigenesdatosDAO;
import ig.metrica.modelos.entity.ModeloorigenesdatosDTO;
import ig.metrica.modelos.entity.ModeloorigenesdatosLocal;
import ig.metrica.modelos.entity.ModeloorigenesdatosPK;
import java.sql.SQLException;
import java.util.Collection;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.*;

/**
 * This is the bean class for the SessionModelosBean enterprise bean.
 * Created 18/04/2006 10:37:47 AM
 * @author jsanchez
 */
public class SessionModelosBean implements SessionBean, SessionModelosRemoteBusiness {
    //private SessionContext context;
    //private ig.metrica.modelos.entity.ModeloorigenesdatosLocalHome home=null;
    // <editor-fold defaultstate="collapsed" desc="EJB infrastructure methods. Click the + sign on the left to edit the code.">
    // TODO Add code to acquire and use other enterprise resources (DataSource, JMS, enterprise bean, Web services)
    // TODO Add business methods or web service operations
    /**
     * @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
     */
    public void setSessionContext(SessionContext aContext) {
        //context = aContext;
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbActivate()
     */
    public void ejbActivate() {
        
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbPassivate()
     */
    public void ejbPassivate() {
        
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbRemove()
     */
    public void ejbRemove() {
        
    }
    // </editor-fold>
    
    /**
     * See section 7.10.3 of the EJB 2.0 specification
     * See section 7.11.3 of the EJB 2.1 specification
     */
    public void ejbCreate() {        
        // TODO implement ejbCreate if necessary, acquire resources
        // This method has access to the JNDI context so resource aquisition
        // spanning all methods can be performed here such as home interfaces
        // and data sources.
    }
    
    
    /*private ig.metrica.modelos.entity.ModeloorigenesdatosLocalHome  getHome(){
        if(home==null){
            home=this.lookupModeloorigenesdatosBean();
        }
        return home;
    }*/
    // Add business logic below. (Right-click in editor and choose
    // "EJB Methods > Add Business Method" or "Web Service > Add Operation")

    public Collection findAll() {
        //System.out.println("BUSCA A TODOS");    
        try {            
            //Collection col= new ArrayList();
            ModeloorigenesdatosDTO DTO=null;
            List c=new ModeloorigenesdatosDAO().findAll();
            /*for (Object elem : c) {
                DTO= new ModeloorigenesdatosDTO();
                DTO.setModelo(((ModeloorigenesdatosPK)((ModeloorigenesdatosDTO)elem).getPrimaryKey()).getModelo());
                DTO.setOrigenesdatos(((ModeloorigenesdatosPK)((ModeloorigenesdatosLocal)elem).getPrimaryKey()).getOrigenesdatos());
                col.add(DTO);
            }*/
            return  c;
        } catch (Throwable ex) {
            ex.printStackTrace();
        }     
        return null;
    }
    public Collection findByModelo(String modelo) {
            return  null;
    }
    
    
    public Collection findByModelo(Integer modelo) {
        //System.out.println("BUSCA A TODOS");
        try {            
            Collection col= new ArrayList();
            ModeloorigenesdatosDTO DTO=null;
            List c=new ModeloorigenesdatosDAO().findByModelo(modelo);
            /*for (Object elem : c) {
                DTO= new ModeloorigenesdatosDTO();
                DTO.setModelo(((ModeloorigenesdatosDTO)elem).getModelo());
                DTO.setOrigenesdatos(((ModeloorigenesdatosDTO)elem).getOrigenesdatos());
                col.add(DTO);
            }*/
            return  c;
        } catch (Throwable ex) {
            ex.printStackTrace();
        }     
        return null;
    }
    public boolean eliminar(ig.metrica.modelos.entity.ModeloorigenesdatosDTO modeloorigenesdatosDTO) {
            try {
                //System.out.println("LO VA A ELIMINAR");
                ModeloorigenesdatosPK pk =new ModeloorigenesdatosPK(modeloorigenesdatosDTO.getModelo(), modeloorigenesdatosDTO.getOrigenesdatos());
                new ModeloorigenesdatosDAO().delete(pk);
                return true;
            } catch (SQLException ex) {
                return false;
                //ex.printStackTrace();
            } catch (Exception ex) {
                return false;
                //ex.printStackTrace();
            } catch (Throwable ex) {
                return false;
                //ex.printStackTrace();
            }
    }

    public boolean modificar(ig.metrica.modelos.entity.ModeloorigenesdatosDTO DTOViejo, ig.metrica.modelos.entity.ModeloorigenesdatosDTO DTONuevo) {
        //System.out.println("LO VA A MODIFICAR");    
            ModeloorigenesdatosPK pk =new ModeloorigenesdatosPK(DTOViejo.getModelo(), DTOViejo.getOrigenesdatos());
            /*pk.modelo=DTOViejo.getModelo();
            pk.origenesdatos=DTOViejo.getOrigenesdatos();*/
        
            try {
                //getHome().findByPrimaryKey(pk).remove();
                new ModeloorigenesdatosDAO().delete(pk);
                this.nuevo(DTONuevo);
                //getHome().create(DTONuevo.getModelo(),DTONuevo.getOrigenesdatos());
                return true;
//            } catch (CreateException ex) {
//                ex.printStackTrace();
            } catch (SQLException ex) {
                return false;
                //ex.printStackTrace();
            } catch (Exception ex) {
                return false;
                //ex.printStackTrace();
            } catch (Throwable ex) {
                return false;
                //ex.printStackTrace();
            }            
    }

    public boolean nuevo(ig.metrica.modelos.entity.ModeloorigenesdatosDTO DTO) {
        try {
            //System.out.println("LO VA A CREAR");    
            //getHome().create(DTO.getModelo(),DTO.getOrigenesdatos());
            new ModeloorigenesdatosDAO().create(DTO);
            return true;
        } catch (Throwable ex) {
            ex.printStackTrace();
            return false;
            //ex.printStackTrace();
        }
        
    }    
    /*private ig.metrica.modelos.entity.ModeloorigenesdatosLocalHome rv = null;
    private ig.metrica.modelos.entity.ModeloorigenesdatosLocalHome lookupModeloorigenesdatosBean() {
        try {
            if(rv==null){
                javax.naming.Context c = new javax.naming.InitialContext();
                rv = (ig.metrica.modelos.entity.ModeloorigenesdatosLocalHome) c.lookup("java:comp/env/ejb/ModeloorigenesdatosBean");
            }
            return rv;
        }
        catch(javax.naming.NamingException ne) {
            java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
            throw new RuntimeException(ne);
        }
    }*/
    
    
}
